Sql Server 2012 转换函数的比较(Cast、Convert和Parse)
select Parse(@date as datetime using 'zh-CN') as date
SELECT PARSE('Monday, 13 December 2010' AS datetime2 USING 'zh-CN') AS Result
1. Convert 和 Cast 的区别
DBCC FreeProcCache
执行过之后,会发现,两者的执行计划完全相同,无论是对 CPU 的消耗,还是对 IO的消耗,没有任何性能差别
语法结构:PARSE ( string_value AS data_type [ USING culture ] )
3. 综合比较
select top 1 convert(bigint,name) from test_Parse
1. Cast
复制代码 代码如下:
a. 如果 是做针对 Sql Server 的做开发,建议只用 Convert 方法
性能分析:
-- DateTime
select top 1 parse(name as bigint) from test_Parse
CAST是两种功能中更具ANSI标准的功能,即虽然更具便携性(比如,使用CAST的函数能更容易的被其它数据库软件使用),但功能相对弱一些。不过,当小数转化为数值,并保留原始表达式中的小数数值时,仍然需要使用CAST
严重怀疑, Parse 本人并没有找到太多的优势和应用场景,或者由于本人才疏学浅,找不到更好的,有懂得,请赐教 两者除了语法的区别,就是功能上面的区别,Convert 功能更强大,Parse 则为 Sql Server 2012 新增的功能,同时功能弱小很多的,只能将 字符串 转换为 数字类型 或者 日期类型,因为数字类型 或 日期类型长度都很小的,所以 Parse 所带来的性能几乎不可能有大的改变的,之后我也做了大量的比较,发现 Parse 是在绝大多数情况下都是可以替代的
--Money
其中 name 为 nvarchar(1000) 的一个一段,值为:1231238912378912128
2. Money 和 DateTime 类型的转换比较
SELECT PARSE('345,98' AS money USING 'de-DE') AS Result
DBCC FreeProcCache
在性能方面同样没什么区别,但是比较功能时,Parse 却要比 Convert 错太多
declare @date varchar(100) = '2012/07/19 14:57:09.760'
--SELECT cast('Monday, 13 December 2010' AS datetime2) AS Result
select CONVERT(datetime,@date) as date
c. Parse 在 Sql Server 2012 中就是一个鸡肋,经过1 下午的实战研究和翻阅MSDN,都没有找到它的优势,如果比语法,Cast 的语法结构和它一样,如果比功能,又太弱小,完全不能和Cast 和 Convert 做比较,所以,您就把 Parse 忘记掉吧
CONVERT是专对SQL Server使用的,使日期与时间值,小数之间转换具有更宽的灵活性。
总结:
set statistics profile on
3. Parse
其中,Parse 为 Sql Server 的新特性 expression 必须要为被转换类型的字符串形式
1. Convert 和 Parse 转换为字符串的比较
语法结构:
语法结构:CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
SELECT PARSE('Monday, 13 December 2010' AS datetime2 USING 'en-US') AS Result
Select Convert(money,'345,98',1) AS Result
语法结构:CAST ( expression AS data_type [ ( length ) ] )
3. Parse 的专利,字符型日期到 datetime 的转换
复制代码 代码如下:
性能分析所做的实验:b. 如果考虑语句跨平台,则尽量用 Cast,如 SQL 语句既能在 Sql Server 上执行,又能在 MySql 上面执行
-- Cast 和 Convert 对这种类型的字符串都是不支持的
--SELECT Convert(datetime,'Monday, 13 December 2010') AS Result
2. Convert 和 Parse 的区别
复制代码 代码如下:
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/sql/mssql/2151.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
SQL基本教程之行转列Pivo
时间:2021-01-20
-
region from hr.Employees union
时间:2021-01-20
-
有时候需要调整用户权限
时间:2021-01-19
-
(但使用 ORDER BY 子句并不
时间:2021-01-19
-
RAND()*10000)insert into Detail
时间:2021-01-19
-
OR 运算符:在两侧的查询
时间:2021-01-19
-
放假之前老大跟我提起了
时间:2021-01-19
-
数据库的运维计策剧本篇
时间:2021-01-19
热门文章
-
4.与聚合函数和 GROUP BY 子句有关的常见错
时间:2021-01-19
-
SQL Server安全(11/11):审核(Auditing)
时间:2021-01-09
-
sqlserver中查询横表变竖表的sql语句简析
时间:2020-12-08
-
SQL Server简单模式下误删除堆表记录恢复方
时间:2020-12-12
-
关于SQL Server查询语句的使用
时间:2020-12-13
-
MSSQL教程_mssql数据库教程_MSSQL基础教程_第
时间:2020-12-13
-
jdbc连接sql server数据库问题分析
时间:2020-12-10
-
详解SQL游标的用法
时间:2020-12-27
-
sql server 关于设置null的一些建议
时间:2020-12-28
-
mssql关于一个表格结构的另外一种显示(表
时间:2020-12-11
